/*
 * 此类主要负责包装ajax请求
 * @author 邓柳江 
 */
common.ajaxHelper = function(){
	return{
		//发起ajax请求
		/*config包括:
		 * callback:操作成功后的回调函数(必填)
		 * strServId:后台handler id(必填)
		 * jsonData:传递给后台的参数(选填),可以直接传入json对象,也可以传入json格式的string
		 * inDataClass:vo(选填),不填写的话会去handlerconfig里面去找对应的vo(一般情况下不用写)
		 * failure:失败后调用的函数
		 * errorTitle:错误框title(选填)
		 */
		doAjaxWithJsonReturn : function(config){
			var params;
			if(config['jsonData']&&Ext.type(config['jsonData'])!='string')
				config['jsonData']=Ext.encode(config['jsonData']);
			//带参数的请求
			if(!Ext.isEmpty(config['jsonData'])){
				if(!config['inDataClass'])
					reqParams={strServId:config['strServId'],jsonData:config['jsonData']};
				else
					reqParams={strServId:config['strServId'],jsonData:config['jsonData'],inDataClass:config['inDataClass']};
			}
			//不带参数的请求
			else{
				reqParams={strServId:config['strServId']};			}
			Ext.Ajax.request({
				url:common.AJAX_ACTION,
				params:reqParams,
				timeout:common.TIME_OUT,
				success:function(xhr){
					//异常处理
					if(xhr.getResponseHeader['C-Result-Status']&&xhr.getResponseHeader['C-Result-Status']!=600){
						if(config['failure']){
							config['failure'](xhr.responseText);
							return;
						}
						if(xhr.getResponseHeader['C-Result-Status']==603)
							php.showErrorMessage("业务逻辑异常",xhr.responseText);
						else if(xhr.getResponseHeader['C-Result-Status']==602)
							php.showErrorWin("系统异常",xhr.responseText);
						
					}
					else{
						if(!Ext.isEmpty(config['callback'])){
							if(xhr.responseText)
								config['callback'](Ext.decode(xhr.responseText));
							else
								config['callback']();
						}
					}	
				},
				failure:function(xhr){
					if(Ext.isEmpty(xhr.responseText))
						php.showErrorMessage("系统异常","请求超时,请稍后再试");
					else
						php.showErrorMessage("系统异常",xhr.responseText);
				}
			});
			}
		};
}();